1. Field of the Invention
The present invention relates to a method and apparatus for usage management, and more specifically to the efficient management of subscriber usage of communications network resources.
2. Background Art
An increasingly large number of individuals use portable computing devices, such as laptop computers, personal data assistants (PDAs), smart phones and the like, to support mobile communications. The number of computing devices, and the number of networks that these devices connect to, has increased dramatically in recent years. Similarly, an increasing number of wireless Internet access services have been appearing in airports, cafes and book stores.
Typically users gain access to these networks by purchasing a subscription plan from a service provider. One type of subscription plan is a flat rate subscription plan. In a flat rate subscription plan a subscriber pays a fee for a billing cycle and is entitled to a set amount of network usage (i.e. a usage quota) during the billing cycle. For example, a user may pay $30 for a month and be entitled to 500 minutes of network time. The usage quota can be specified as a time per billing cycle amount (e.g., 500 minutes per month) or as a data volume per billing cycle amount (e.g., 1000 kB per month). In some flat rate subscription plans the usage quota is unlimited.
Another type of usage plan is an actual usage subscription plan. In an actual usage subscription plan a subscriber pays a set rate based on the actual amount of network usage during a billing cycle. For example, a user may pay $1 per minute of network usage. Actual usage plans can have incentives/penalties based on a subscriber's usage during a billing cycle. For example, in a subscription plan a subscriber may pay $1 per minute for the first 500 minutes and $2 per minute for every minute beyond 500 minutes during the billing cycle. Subscription plans can also combine aspects of flat rate plans and usage plans. For example, a subscriber may pay $30 per month for 500 minutes of network usage and $1 per minute for every minute used after 500 minutes.
In the plans described above, as well as other subscriber plans, it is useful to police a subscriber's usage against one or more quotas. Usage collection and usage analysis are required steps in policing a subscriber's network usage against one or more quotas. Usage collection involves collecting raw usage metrics from network devices. Usage collection can occur periodically throughout a billing cycle (e.g., collect data every week). Raw data is aggregated to calculate usage totals during the subscriber's billing period. Usage analysis involves evaluating a subscriber usage total against a usage quota specified by a subscription plan to determine if the usage quota was breached. If the quota is breached, the service provider applies policy enforcement according to the subscription plan. For example, the service provider may send a message to the subscriber, redirect traffic, terminate the session, and/or generate a billing record.
Usage collection generates large volumes of data and thereby places significant loads on both network devices and metering nodes. Thus, this data is expensive to collect. This data is of low value to the service provider if it does not identify a quota breach. Further, usage analysis is expensive to compute and is input/output intensive operation that does not result in identifying a quota breach in the vast majority (approximately 98% or greater) of evaluations. Typically, the rate of quota breaches is very low, because only a small percentage of subscribers (approximately less than 5%) have usage patterns which breach usage quotas during their billing period. Further, the majority of usage quotas are breached during the last few days of a subscribers billing period while evaluations occur throughout the billing cycle.
The performance of a usage analyzer is currently limited by the number of database queries executed for each accounting record processed. Typically, each usage record in a communications network results in a large number (typically 5 to 6 in many installations) of database queries, each of which is executed serially. Such database queries are not optimal since such queries often result in redundant data being queried from the database. This is particularly inefficient since the database data values are generally static, thus making the repeated querying of the same data inefficient.
Moreover, the architecture of the connectivity to the usage analyzer substantially reduces the opportunity for greater efficiencies in the overall throughput of a usage analyzer in a communications network. Specifically, there is a lack of parallelism on the input side to the usage analyzer, since all usage analyzer actions are performed in the context of the input stream's thread. On the output side, the usage analysis and the usage storage functions are separated into two different output streams, thereby preventing the use of “intelligent” decision making as to what usage data is actually written into the database.
What is needed is a method and an apparatus such that requested usage data from a subscriber database in a communication network can be obtained far more efficiently. In addition, it is desirable that more parallelism and intelligence be deployed in terms of the architecture used within that communications network.